www.gusucode.com > 支持向量机工具箱 - LIBSVM OSU_SVM LS_SVM源码程序 > 支持向量机工具箱 - LIBSVM OSU_SVM LS_SVM\stprtool\linear\homog2.m

    function [NX]=homog2(X,I)
% HOMOG2 introduces homogenous coordinates.
% [NX]=homog2(X,I)
%
% HOMOG2 adds one constant coordinate to a training set so
%   that the original task of finding arbitrary placed hyperplane
%   becomes simpler. More precisely, the original task is to find
%   a vector alpha and a threshold theta (determining hyperplane)
%   for which holds
%           alpha' * x >= theta   for any x from the first class
%           alpha' * x < theta    for any x from the second class
%
%   After adding of one constant coordinate the original task
%   changes to equivalent one where the goal is to find nalpha
%   (hyperplane going through the origin) for which holds
%           nalpha' * nx >= 0   for any nx from the first class
%           nalpha' * nx <  0   for any nx from the second class
%
% Input:
%    X [NxM] is a matrix containing M points in N-dimensional
%       feature space. So that X=[x1,x2 ...xM] and xs are
%       column vectors.
%    I [1xM] is a vector of class labels for each point. In this
%       case possible value is 1 for first class or 2 for
%       second class.
%
% Output:
%    NX [NxM] is matrix of transformed points.
%
% See also CTRANSF.
%

% Statistical Pattern Recognition Toolbox, Vojtech Franc, Vaclav Hlavac
% (c) Czech Technical University Prague, http://cmp.felk.cvut.cz
% Written Vojtech Franc (diploma thesis) 24.10.1999
% Modifications

I=-(I*2-3);
NX=[X;ones(1,size(X,2))].*repmat(I,size(X,1)+1,1);

return;